
#ifndef QUERYEXECUTOR_H_
#define QUERYEXECUTOR_H_

#include <fstream>
#include "RelOp.h"

class QueryExecutor {
public:
	QueryExecutor();
	~QueryExecutor();

	const char *test_settings;
	char *catalog_file_path, *db_file_path, *stats_file_path, *tpch_file_dir, *sqlset_file_path;

	void Setup();
	void CreateTable(char* tableName, vector<Attribute> attrList, bool isSorted, vector<string> sortAtts);
	void InsertIntoTable(char* tableName, char* inFileName);
	void DropTable(char* tableName);
	void DeleteFileEntry(char* fileName, char* tableName, bool isStats);
	bool TableExists(char* fileName, char* tableName, bool isStats);
	int GetTupleCount(char* fileName, char* tableName);
	void SetOutput(int mode, char* outFileName);
	void SetJoin(int mode);
};

#endif /* QUERYEXECUTOR_H_ */

